
/**
 * @brief    Defines PSDs and cross PSDs for frequency domain fatigue (random
 * vibration) analysis using SOL 108 or SOL 111.
 *
 * @version  0.1
 * @author   wuxingchuang
 * @date     2025.10.11
 *          _
 *      ___| |__   ___ _ __   __ _  ___  _ __   __ _
 *     / __| '_ \ / _ \ '_ \ / _` |/ _ \| '_ \ / _` |
 *     \__ \ | | |  __/ | | | (_| | (_) | | | | (_| |
 *     |___/_| |_|\___|_| |_|\__, |\___/|_| |_|\__, |
 *                           |___/             |___/
 * @copyright (c) 2024 by 神工仿真, All Rights Reserved.
 */
#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Common/SetBase.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN

/// @brief 用于定义随机激励矩阵
struct RANDPSData : public SetBase 
{
  SG::DataStructure::Common::I64 m_J = 0;        ///< 工况Id
  SG::DataStructure::Common::I64 m_K = 0;        ///< 工况Id, K>=J
  SG::DataStructure::Common::Real m_X = 0.0;     ///< 实部系数
  SG::DataStructure::Common::Real m_Y = 0.0;     ///< 虚部系数
  SG::DataStructure::Common::Id m_TID = 0;       ///< G（f）随着频率变化的表的id
  SG::DataStructure::Common::Id m_domainId = 0;  ///<
};

///< @brief 判断数据是否相等
DECLSPEC bool operator==(const RANDPSData& val1, const RANDPSData& val2);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE
